package com.wtwd.wtwddevice.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wtwd.device.protocol.WTProtocol;
import com.wtwd.wtwddevice.model.entity.Device;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author mjy
 * @since 2024-05-14
 */
public interface IDeviceService extends IService<Device> {

    String DEVICE_KEY_PREFIX = "WT_DEVICE_KEY_";

    /**
     * 根据设备imei号获取设备信息
     *
     * @param deviceKey
     * @return
     */
    Device getDeviceInfoByImei(String deviceKey);

    /**
     * 设备登录
     * <p>
     * 设备登录成功 推送设备上线到app
     *
     * @param form
     * @param protocol
     */
    boolean deviceLogin(String form, WTProtocol protocol);

    /**
     * 暂时从数据库拿，有时间切换缓存
     *
     * @param imei
     * @return
     */
    Long getDeviceIdByImei(String imei);

    /**
     * app 登录通讯长连接
     *
     * @param form
     * @param imei
     * @return
     */
    boolean appLogin(String form, String imei);
}
